
# 添加任务依赖功能, 跨任务流依赖, 添加状态触发机制 ok
# 任务流完成后，会提示任务流完成，但是没有退出任务流线程

import sys
import time
import signal
import logging
import TaskScheduler

import taskflow_2 as tf2

def signal_handler(sig, frame):
    logging.info("捕获到Ctrl+C信号，正在关闭程序.")
    # ... 
    logging.info("程序退出")
    sys.exit()

# 使用示例
if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)
    signal.signal(signal.SIGINT, signal_handler)
    
    # logging.basicConfig(level=logging.DEBUG)

    scheduler = TaskScheduler.TaskScheduler()

    logging.info("创建任务流.")
    # 添加任务流
    scheduler.add_task_flow("flow2", 
                            [tf2.Scene2_task1, tf2.Scene2_task2, tf2.Scene2_task3, tf2.Scene2_task4], 
                            dependencies={
                                            "Scene2_task2": ["Scene2_task1"], 
                                            "Scene2_task3": ["Scene2_task2"], 
                                            "Scene2_task4": ["Scene2_task3"] 
                                          }, 
                            trigger_condition=tf2.trigger_condition2)

    logging.info("运行调度器.")
    # 启动调度器
    scheduler.set_trigger_interval_time(1)
    scheduler.start()

    # 模拟条件变为 True
    time.sleep(2)  # 模拟等待时间
    logging.info("调度器启动.")
    scheduler.set_ready()

    time.sleep(2)
    logging.info("tf2标志符满足.")
    tf2.some_flag2 = True

    # 等待一段时间，确保任务流执行完成
    while(True):
      time.sleep(10)


